﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DBAccess;
using System.Data;
using System.Data.SqlClient;
using SSPharma.Common;
using System.Data.Common;

namespace SSPharma.Biz.DanhMuc
{
    class BizDanhMucHeThong
    {
        /// <summary>
        /// User: TAMNN 21/07/2014
        /// Mục đích: Lấy cấu trúc các cột,chiều dài,thứ tự... của các cột cần hiển thi
        /// </summary>
        /// <param name="_tenform">Tên bảng của danh mục đó trong database</param>
        /// <returns></returns>
        public DataTable ft_DSDinhDang_DanhMuc(string _tenform)
        {
            string strQuery = "Select * from HT_DinhDangHTDM where TenBang =@TenBang order by STT";
            SQLServer.Param[] Params = new SQLServer.Param[1];
            Params[0] = new SQLServer.Param("@TenBang", _tenform);
            return Global.DataFactory.GetDataTable(strQuery.ToString(), Params);
        }
        /// <summary>
        /// User: TAMNN 21/07/2014 
        /// Mục đích: Lấy dữ liệu cho từng danh mục
        /// </summary>
        /// <param name="_tenbang">tên bảng của danh mục đó trong database</param>
        /// <param name="list">các cột cần select ra</param>
        /// <param name="Orderby">sắp xếp theo</param>
        /// <returns></returns>
        public DataTable ft_Getdata_DanhMuc(string _tenbang, IList<string> list, string Orderby)
        {
                string str = string.Join(",", list.ToArray());
                StringBuilder strSQL = new StringBuilder();
                strSQL.Append(" SELECT ");
                strSQL.Append(str);
                strSQL.Append(" from " + _tenbang + " with(nolock)");
                strSQL.Append(!string.IsNullOrEmpty(Orderby)?(" order by " + Orderby) :"");
                return Global.DataFactory.GetDataTable(strSQL.ToString());
        }
        /// <summary>
        /// User: TAMNN 21/07/2014
        /// Mục đích: Xóa dữ liệu của danh mục theo từng model
        /// </summary>
        /// <param name="_tenbang">tên bảng của danh mục đó trong database</param>
        /// <param name="ListKhoaChinh">List khóa chính</param>
        /// <param name="Values">List giá trị tương ứng với khóa chính đó</param>
        /// <returns></returns>
        public string fs_Delete_DanhMuc(string _tenbang,IList<string> ListKhoaChinh,IList<string> Values)
        {
            string strSQL = string.Empty;
            strSQL += " delete " + _tenbang;
            strSQL += " where ";
            for(int i =0;i<ListKhoaChinh.Count;i++)
                strSQL += ListKhoaChinh[i] +" = '"+ Values[i] + "' and ";
            strSQL = strSQL.Substring(0, strSQL.LastIndexOf("and"));
            using (DbDataReader dataReader = Global.DataFactory.Reader(strSQL.ToString(), null))
            {
                if (dataReader.HasRows)
                {
                    return dataReader.GetSchemaTable().Rows[0][0].ToString();
                }
            }
            return "Xóa thành Công";
        }
    }
}